home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / public / SciAn / src / ScianSIMSFiles.h < prev    next >
Text File  |  1994-08-01  |  5KB  |  227 lines

  1. /* ----------------------------    
  2.     ScianSIMSFiles.h
  3.  
  4.     includes for ScianSIMSFiles.c
  5.  
  6.     data for XYZ file format as defined by
  7.     Research Equipment Inc. dba Minnesota
  8.     Supercomputer Center (1991)
  9.     symbol table included
  10.  
  11.     modified for Gaussian reader
  12.  
  13.     Christina Lam
  14.     June 1993
  15.     ----------------------------- */
  16.  
  17. #define ANGSTROMS_PER_ALU 0.5292
  18. #define N_XYZ_SYMBOLS 127
  19. /* -----------------
  20.     Array to pair up XYZ atom names to atomic numbers
  21.     ----------------- */
  22. typedef struct
  23. {
  24.     char *symbol;        /* name in periodic table */
  25.     char *name;        /* xyz format-specific name */
  26.     int atomicNumber;    /* atomic number */
  27. } xyzInfo;
  28.  
  29. xyzInfo *xyzExtraSymbolTable;
  30. char xyzExtraInfoFile[] = "userXYZ.dat";    /*user-defined atoms */
  31. int numExtraXYZSymbols = 0;
  32.  
  33. /* ----------------
  34.     Structure to hold atom data for each frame as it is being read
  35.     ---------------- */
  36. typedef struct
  37. {
  38.     real coords[3];        /* xyz coordinates */
  39.     char name[4];
  40.     int atomicNumber;
  41. } atomData;
  42.  
  43.  
  44. /* ----------------
  45.     Structure to record grid parameters for DMOL .grd file
  46.     ---------------- */
  47. typedef struct
  48. {
  49.     real a, b, c;                /* grid cell span in x, y, z directions */
  50.     real alpha, beta, gamma;    /* cell angles */ 
  51.     int numX, numY, numZ;    /* number of intervals in x, y, z */
  52.     Bool xIsFastest;            /* true if x varies fastest, false if y does */
  53.     int xStart, xEnd;            /* spaces to left and right of origin */
  54.     int yStart, yEnd;
  55.     int zStart, zEnd;
  56. } gridParameters;
  57.  
  58. /* ---------------------------------
  59.     Structure to record coefficients and arguments for
  60.     Gaussian basis function
  61.     --------------------------------- */
  62. typedef struct
  63. {
  64.     real c, d;                    /* coefficients*/
  65.     real zeta;                    /* orbital exponent */
  66.     int nx, ny, nz;            
  67.     real Rx, Ry, Rz;            /* origin or pt of reference*/
  68. } gaussianParameters;
  69.  
  70. /* -----------------------------------
  71.     Structure to record coordinates and atom type
  72.     of nuclear centres
  73.     ----------------------------------- */
  74. typedef struct
  75. {
  76.     int atomicNumber;
  77.     real x, y, z;
  78. } nuclearCentre;
  79.  
  80. /* -------------------------------------
  81.     Structure to record exponents and coefficients of
  82.     basis set
  83.   -------------------------------------- */
  84. typedef struct
  85. {
  86.     char shellType[4];        /* S, SP, D */
  87.     real scaleFactor;        /* multiplies the exponent */
  88.     int numPrim;            /*number of primitives for this shell */
  89.     real *exponents;        /* ptr to 1D array of size numPrim */
  90.     real *s;                /* ptr to .... of s coeffs */
  91.     real *p;
  92.     real *d;
  93. } basis;
  94.  
  95.  
  96.  
  97. xyzInfo xyzSymbolTable[N_XYZ_SYMBOLS] = {
  98. {"C",    "C",        6},    
  99. {"C",    "C1",    6},    
  100. {"C",    "C2",    6},    
  101. {"C",    "C3",    6},    
  102. {"C",     "CAR",    6},    
  103. {"C",    "CARO",    6},    
  104. {"C",     "CH2AL",    6},    
  105. {"C",    "CH2OL",    6},    
  106. {"C",    "CH3AL",    6},    
  107. {"C",    "CHAL",    6},    
  108. {"C",    "CHAR",    6},    
  109. {"C",    "CHOL",    6},    
  110. {"C",    "CSP",        6},    
  111. {"C",    "CSP2",        6},    
  112. {"C",    "CSP3",        6},    
  113. {"H",    "H",        1},    
  114. {"H",    "HALI",    1},    
  115. {"H",    "HARO",    1},    
  116. {"H",    "HHBN",    1},    
  117. {"Li",    "LI",    3},    
  118. {"B",    "B",        5},    
  119. {"N",    "N",        7},    
  120. {"N",    "N1",    7},    
  121. {"N",    "N2",    7},    
  122. {"N",    "N3",    7},    
  123. {"N",    "N3+",    7},    
  124. {"N",    "NAM",    7},    
  125. {"N",    "NAR",    7},    
  126. {"N",    "NARO",    7},    
  127. {"N",    "NPL3",    7},    
  128. {"N",    "NSP",    7},    
  129. {"N",    "NSP2",    7},    
  130. {"N",    "NSP3",    7},    
  131. {"N",    "NSP3+",    7},    
  132. {"O",    "O",        8},    
  133. {"O",    "O2",    8},    
  134. {"O",    "O3",    8},    
  135. {"O",    "OSP2",    8},    
  136. {"O",    "OSP3",    8},    
  137. {"O",    "OSP3-",    8},    
  138. {"F",    "F",        9},    
  139. {"Na",     "NA",     11},
  140. {"Mg",    "MG",    12},    
  141. {"Al",    "AL",    13},    
  142. {"Si",    "SI",    14},    
  143. {"P",    "P",        15},    
  144. {"P",    "P(C)",    15},    
  145. {"P",    "P(N)",    15},    
  146. {"P",    "P(O)",    15},    
  147. {"P",    "P(S)",    15},    
  148. {"S",    "S",        16},    
  149. {"S",    "S2",    16},    
  150. {"S",        "S3",        16},    
  151. {"S",    "SDIV",    16},    
  152. {"S",    "STET",    16},    
  153. {"S",    "STRI",    16},    
  154. {"Cl",    "CL",    17},    
  155. {"K",    "K",        19},    
  156. {"Ca",    "CA",    20},    
  157. {"Sc",    "SC",    21},    
  158. {"Ti",    "TI",    22},    
  159. {"V",    "V",        23},    
  160. {"Cr",    "CR",    24},    
  161. {"Mn",    "MN",    25},    
  162. {"Fe",    "FE",     26},    
  163. {"Co",    "CO",    27},    
  164. {"Ni",    "NI",    28},    
  165. {"Cu",    "CU",    29},    
  166. {"Zn",    "ZN",    30},    
  167. {"Ga",    "GA",    31},    
  168. {"Br",    "BR",    35},    
  169. {"Rb",    "RB",    37},    
  170. {"Ag",    "AG",    47},    
  171. {"I",        "I",        53},    
  172. {"Cs",    "CS",    55},    
  173. {"Au",    "AU",    79},    
  174. {"XX",    "XX",    99},    
  175. {"Cb",    "CB",    102},    
  176. {"+",    "+",        103},    
  177. {"++",    "++",    104},    
  178. {"-",    "-",        105},    
  179. {"--",    "--",    106},    
  180. {"Tv",    "TV",    107},    
  181. {"?",    "DU",    0},    
  182. {"?",    "LP",    0},    
  183. {"#",    "P3",    0},    
  184. {"#",    "P3D",    0},    
  185. {"#",    "P4",    0},    
  186. {"#",    "SO",    0},    
  187. {"#",    "SO2",    0},    
  188. {"H",    "1",        1},    
  189. {"Li",    "3",        3},    
  190. {"B",    "5",        5},    
  191. {"C",    "6",        6},    
  192. {"N",    "7",        7},    
  193. {"O",    "8",        8},    
  194. {"F",    "9",        9},    
  195. {"Na",    "11",    11},    
  196. {"Mg",    "12",    12},    
  197. {"Al",    "13",    13},    
  198. {"Si",    "14",    14},    
  199. {"P",    "15",    15},    
  200. {"S",    "16",    16},    
  201. {"Cl",    "17",    17},    
  202. {"K",    "19",    19},    
  203. {"Ca",    "20",    20},    
  204. {"Sc",    "21",    21},    
  205. {"Ti",    "22",    22},    
  206. {"V",    "23",    23},    
  207. {"Cr",    "24",    24},    
  208. {"Mn",    "25",    25},    
  209. {"Fe",    "26",    26},    
  210. {"Co",    "27",    27},    
  211. {"Ni",    "28",    28},    
  212. {"Cu",    "29",    29},    
  213. {"Zn",    "30",    30},    
  214. {"Ga",    "31",    31},    
  215. {"Br",    "35",    35},    
  216. {"Rb",    "37",    37},    
  217. {"Ag",    "47",    47},    
  218. {"I",        "53",    53},    
  219. {"Cs",    "55",    55},    
  220. {"Au",    "79",    79},    
  221. {"Bq",    "BQ",    99},    
  222. {"X",    "X",        99},    
  223. {"?",    "?",        0},    
  224. {"He",    "HE",    2}    
  225. };
  226.  
  227.